A modern computer with an operating system implementing multi-threading typically has many threads going at a given time. Generally, the threads are context-switched in and out all the time, and which thread is switched in (i.e., getting to use the processor) depends on the priorities of the threads. How the switching is managed can have a significant impact on the performance of the computer.
In the traditional operating system device driver model, a system thread (e.g., the thread for a system-provided driver) performs an I/O operation in response to an I/O request from an application or a higher-level driver. Once the system thread has completed the requested I/O operation, it boosts the priority of the thread that made the request. This priority boost, which is a standard way of implementing I/O drivers, increases the likelihood that the thread that made the request will be context-switched in so that it can consume the data resulting from the I/O operation. In some situations, however, the system thread will have its priority superceded by the boosted thread. This can cause the system thread to be context-switched out and in frequently, which can have significant detrimental effect on the overall system performance.